Test bench

A test bench is a virtual environment used to verify the correctness or soundness of a design or model (e.g., a software product).

The term has its roots in the testing of electronic devices, where an engineer would sit at a lab bench with tools for measurement and manipulation, such as oscilloscopes, multimeters, soldering irons, wire cutters, and so on, and manually verify the correctness of the device under test.

In the context of software or firmware or hardware engineering, a test bench refers to an environment in which the product under development is tested with the aid of a collection of testing tools. Often, though not always, the suite of testing tools is designed specifically for the product under test.

A test bench or testing workbench has four components:

  1. Input: The entrance criteria or deliverables needed to perform work,
  2. Procedures to do: The tasks or processes that will transform the input into the output,
  3. Procedures to check: The processes that determine that the output meets the standards,
  4. Output: The exit criteria or deliverables produced from the workbench.

An example of a software test bench

The tools used to automate the testing process in a test bench perform the following functions:

Test manager
manages the running of program tests; keeps track of test data, expected results and program facilities tested.
Test data generator
generates test data for the program to be tested.
Oracle
generates predictions of the expected test results; the oracle may be either previous program versions or prototype systems.
File comparator
compares the results of the program tests with previous test results and records any differences in a document.
Report generator
provides report definition and generation facilities for the test results.
Dynamic analyzer
adds code to a program to count the number of times each statement has been executed. It generates an execution profile for the statements to show the number of times they are executed in the program run.
Simulator
simulates the testing environment where the software product is to be used.

See also

References